/*! \file VertexShaderImpl.h
 *	\brief <write description for VertexShaderImpl.h>
 *
 *	created:	2010/04/14
 *	created:	14:4:2010   17:19
 *	filename: 	c:\src\tactics-engine\libs\gd_dx11\VertexShaderImpl.h
 *	file path:	c:\src\tactics-engine\libs\gd_dx11
 *	file base:	VertexShaderImpl
 *	file ext:	h
 *	author:		Vitalii Trubchaninov
 *				venngraydog@gmail.com
 */

#ifndef _gd_dx11_VERTEXSHADERIMPL_H_
#define _gd_dx11_VERTEXSHADERIMPL_H_

#pragma once

#include <d3d11.h>
#include <utils/COMPointer.h>

#include "BaseShaderImpl.h"

namespace tt{
namespace gd_dx11{

class VertexShaderImpl : public BaseShaderImpl
{
	//TT_DECLARE_SELF_AND_BASE(VertexShaderImpl, BaseShaderImpl);
public:
	VertexShaderImpl(const utils::COMPointer<ID3D11VertexShader>&, const utils::COMPointer<ID3D11InputLayout>& );
	virtual ~VertexShaderImpl();

protected:
	virtual void onApply(gd::DeviceContext*);

private:
	utils::COMPointer<ID3D11VertexShader> m_shader;
	utils::COMPointer<ID3D11InputLayout> m_inputLayout;
};

} //namespace gd_dx11
} //namespace tt

#endif //_gd_dx11_VERTEXSHADERIMPL_H_
